package ve.gob.ine.censo.beans;

import java.sql.SQLException;
import java.util.List;

import javax.faces.bean.ManagedBean;

import ve.gob.ine.censo.dao.ibatis.Conexion;
//import ve.gob.ine.censo.dao.ibatis.UsuarioDAO;
//import ve.gob.ine.censo.dao.ibatis.UsuarioDAOImpl;
import ve.gob.ine.censo.model.sis_reportes.Usuario;
import ve.gob.ine.censo.model.sis_reportes.UsuarioExample;

@ManagedBean(name="ProcesosInicializacionBean")
public class ProcesosInicializacionBean {

//	private UsuarioDAO usuarioDAO;
	
	private final static String secretKey = "censo2011";
	
	private String clave = "";
	
	private String mensaje = "";

	public ProcesosInicializacionBean() {
		super();
//		this.usuarioDAO = new UsuarioDAOImpl(Conexion.config()); 
	}

	public String getMensaje() {
		return mensaje;
	}

	public void setMensaje(String mensaje) {
		this.mensaje = mensaje;
	}

	public String getClave() {
		return clave;
	}

	public void setClave(String clave) {
		this.clave = clave;
	}
	
	public void doEncriptaClaves(){
		System.out.println(this.clave + " " + this.secretKey + " " + this.secretKey.equalsIgnoreCase(this.clave));
		if(this.secretKey.equalsIgnoreCase(this.clave)){
			UsuarioExample example = new UsuarioExample();
//			example.createCriteria().andEsusuarioindicadorEqualTo("SI");
//			try {
				List<Usuario> usuarios = null;//this.usuarioDAO.selectByExample(example);

				Encriptacion esource = new Encriptacion();
				String key = "DC101AB52CF894CEE52F61731643B94F";
				byte[] keyb = FunctionByte.hex2byte(key);

				for (Usuario usuario : usuarios) {
					String password = FunctionByte.toHEX1(esource.Encrypt(keyb, usuario.getClave()));
					usuario.setClave(password);

					UsuarioExample usuarioExample = new UsuarioExample();
					usuarioExample.createCriteria().andIdEqualTo(usuario.getId());

//					this.usuarioDAO.updateByExampleSelective(usuario,usuarioExample);
				}
				
				this.mensaje = "Exito al procesar la inicializacion de clave";
				
//			} catch (SQLException e) {
//				e.printStackTrace();
//				this.mensaje = "Error al procesar la inicializacion de clave";
//			}
			
		} else {
			this.mensaje = "Clave Invalida";	
		}
		
	}
}
